Addslashes in Php
Funzione Addslashes() in Php. La funzione Addslashes del linguaggio Php è particolarmente utile quando si lavora con i database. Consente di eliminare gli errori delle query SQL in presenza degli apici nelle variabili. Facciamo un esempio pratico.
|
<?php // connessione al database $server = "localhost"; $user = "utente"; $password = "password"; $database = "nomedatabase"; $conn = @mysql_connect($server,$user,$password); if ($conn) { $stringa = "In questo testo puoi notare la presenza dell'apice"; $query = "INSERT INTO forum (commento) VALUES ('$stringa')"; $result = mysql_db_query($database,$query,$conn); } ?>
|
|
Nel precedente esempio tentiamo in inserire nel campo 'commento' della tabella 'forum' il contenuto della variabile $stringa. All'interno del testo di quest'ultima è però presente il carattere ' (si trova dopo dell e prima della parola apice stessa) che interferisce con gli apici VALUES('$stringa') del linguaggio SQL.
In altri termini l'interprete SQL si troverà di fronte alla seguente situazione: VALUES('In questo testo puoi notare la presenza dell'apice') che, come si può osservare facendo un po' di attenzione, contiene tre apici. Quello di apertura della stringa, quello di chiusura e un terzo apice di troppo. La sintassi SQL viene violata e la query va in errore senza portare a termine il proprio lavoro.
La soluzione con Addslashes()
Per risolvere questi problemi è di grande aiuto ricorrere alla funzione addslashes(). Questa funzione del linguaggio Php aggiunge automaticamente uno slash in presenza del carattere apice.
|
$stringa = "In questo testo puoi notare la presenza dell'apice"; $stringa = addslashes($stringa); $query = "INSERT INTO forum (commento) VALUES ('$stringa')";
|
|
Il contenuto della variabile $stringa viene trasformato in "In questo testo puoi notare la presenza dell'apice". Lo slash indica all'interprete SQL che il carattere successivo deve essere considerato come parte del testo e non come delimitatore finale di campo. La query non va in errore e il commento viene registrato nel database.
L'operazione inversa viene svolta dalla funzione stripslashes() che rimuove tutte le backslash e permette di ritornare alla stringa originale. Ad esempio ' torna ad essere soltanto '.
ecomatrix
scrivi al sito
ecomatrix@gmail.com